CC = arm-none-eabi-gcc
AS = arm-none-eabi-as

CFLAGS += -march=armv6 -g -Os

all: ucos.bin ucos.mem ucos.dis

ucos.bin: ucos.o
	arm-none-eabi-objcopy -O binary -j .text -j .rodata -j .data $< $@
ucos.mem: ucos.bin
	xxd -g1 -c4 $< | cut -b 11-21 > $@
ucos.dis: ucos.o
	arm-none-eabi-objdump -S $< > $@
ucos-rom.mem: ucos.mem
	sed 16384q $< > $@
ucos-ram.mem: ucos.mem
	sed 1,16384d $< > $@
ucos.o: ucos.lds ucos_ii.o os_cpu_c.o os_cpu_a.o start.o main.o uart.o \
	printf.o ethmac.o packet.o memcpy.o
	$(CC) -o $@ -T $^ -nostdlib -lgcc
ucos_ii.o: ucos_ii.c os_core.c os_flag.c os_mbox.c os_mem.c os_mutex.c os_q.c \
	os_sem.c os_task.c os_time.c os_tmr.c \
	ucos_ii.h app_cfg.h os_cfg.h os_cpu.h
os_cpu_c.o: os_cpu_c.c ucos_ii.h app_cfg.h os_cfg.h os_cpu.h
main.o: main.c ucos_ii.h app_cfg.h os_cfg.h os_cpu.h timer.h uart.h ethmac.h
packet.o: packet.c ethmac.h uart.h printf.h
ethmac.o: ethmac.c ethmac.h uart.h

clean:
	rm -f *.o ucos.bin ucos.mem

.PHONY: all clean
